?:
) – требует три операндаКатегория | Операторы |
---|---|
Арифметические | + - * / % ++ -- |
Логические | && || ^ ! |
Бинарные | & | ^ ~ << >> >>> |
Сравнения | == != < > <= >= === !== |
Присваивания | = += -= *= /= %= |= ^= <<= >>= |
Конкатенации | + |
Другие | . [] () ?: new in , delete void typeof instanceof ... |
+
, -
, *
, /
такие же как в математике/
возвращает числ или Infinity
или NaN
%
возвращает остаток от деления на число++
увеличивает (когда как --
уменьшает) на единицу число хранимое в переменной
In [5]:
var squarePerimeter = 17;
var squareSide = squarePerimeter / 4;
var squareArea = squareSide * squareSide;
console.log(squareSide); // 4.25
console.log(squareArea); // 18.0625
var a = 5;
var b = 4;
console.log(a + b); // 9
console.log(a + b++); // 9
console.log(a + b); // 10
console.log(a + (++b)); // 11
console.log(a + b); // 11
Out[5]:
In [9]:
console.log('11.0 / 3 = ' + (11.0 / 3)); // 3.666666667
console.log('11 / 3.0 = ' + (11 / 3.0)); // 3.666666667
console.log('11 % 3 = ' + (11 % 3)); // 2
console.log('11 % -3 = ' + (11 % -3)); // 2
console.log('-11 % 3 = ' + (-11 % 3)); // -2'
console.log('1.5 / 0.0 = ' + (1.5 / 0.0)); // Infinity
console.log('-1.5 / 0.0 = ' + (-1.5 / 0.0)); // -Infinity
console.log('0.0 / 0.0 = ' + (0.0 / 0.0)); // NaN
console.log('true / 2 = ' + (true / 2));
console.log('"1" / 2 = ' + ('1' / 2));
console.log('"as" / 2 = ' + ('as' / 2));
var x = 0;
console.log(5 / x);
Out[9]:
In [10]:
var a = true;
var b = false;
console.log('a && b = ' + (a && b)); // false
console.log('a || b = ' + (a || b)); // true
console.log('a ^ b = ' + (a ^ b)); // 1 !!!!!!
console.log('!b = ' + !b); // true
console.log('b || true = ' + (b || true)); // true
console.log('b && true = ' + (b && true)); // false
console.log('a || true = ' + (a || true)); // true
console.log('a && true = ' + (a && true)); // true
console.log('!a = ' + !a); // false
console.log('(5 > 7) ^ (a == b) = ' + ((5 > 7) ^ (a === b))); // 0
Out[10]:
In [20]:
console.log(
!!'', // пустая строка false
!!'0', // не пустая строка true
!!0, // ноль false
!!35, // не нулевое число true
!![], // обьект true
!!NaN, // NaN false
!!'true', // true
!!'false', // true,
!!null, // любое нулевое и неопределенное false
!!undefined
);
Out[20]:
In [21]:
console.log('Bitwise operators with integers:');
var a = 3; // 00000000 00000011
var b = 5; // 00000000 00000101
console.log(`a = {a}, b = ${b}`);
console.log('a | b = ' + (a | b) + ' - > ' + (a | b).toString(2)); // 00000000 00000111
console.log('a & b = ' + (a & b) + ' - > ' + (a & b).toString(2)); // 00000000 00000001
console.log('a ^ b = ' + (a ^ b) + ' - > ' + (a ^ b).toString(2)); // 00000000 00000110
console.log('~a & b = ' + (~a & b) + ' - > ' + (~a & b).toString(2)); // 00000000 00000100
console.log('a << 1 = ' + (a << 1) + ' - > ' + (a << 1).toString(2)); // 00000000 00000110
console.log('a >> 1 = ' + (a >> 1) + ' - > ' + (a >> 1).toString(2)); // 00000000 00000001
Out[21]:
In [22]:
console.log('Bitwise operators with floats:');
var f1 = 3.5;
var f2 = 5.3;
console.log('f1 = ' + f1 + ', f2 = ' + f2);
console.log('f1 | f2 = ' + (f1 | f2) + ' - > ' + (f1 | f2).toString(2)); // 00000000 00000111
console.log('f1 & f2 = ' + (f1 & f2) + ' - > ' + (f1 & f2).toString(2)); // 00000000 00000001
console.log('f1 ^ f2 = ' + (f1 ^ f2) + ' - > ' + (f1 ^ f2).toString(2)); // 00000000 00000110
console.log('~f1 & f2 = ' + (~f1 & f2) + ' - > ' + (~f1 & f2).toString(2)); // 00000000 00000100
console.log('f1 << 1 = ' + (f1 << f2) + ' - > ' + (f1 << 1).toString(2)); // 00000000 00000110
console.log('f1 >> 1 = ' + (f1 >> f2) + ' - > ' + (f1 >> 1).toString(2)); // 00000000 00000001
Out[22]:
In [23]:
console.log('Bitwise operators with non-number types:');
console.log('~true = ' + ~true);
console.log('~false = ' + ~false);
console.log('"~JavaScript" = ' + ~'JavaScript')
console.log('"js" & true = ' + ('js' | true))
console.log('"js" & true = ' + ('js' ^ true))
Out[23]:
In [25]:
console.log('Regular comparisons: ');
var a = 5;
var b = 4;
console.log('a = ' + a + ', b = ' + b);
console.log('(a >= b) = ' + (a >= b)); // True
console.log('(a != b) = ' + (a != b)); // True
console.log('(a == b) = ' + (a == b)); // False
console.log('(a == a) = ' + (a == a)); // True
console.log('(a != ++b) = ' + (a != ++b)); // False
console.log('(a > b) = ' + (a > b)); // False
Out[25]:
In [26]:
console.log('Special comparisons: ');
var zeroInt = 0;
var oneInt = 1;
var zeroFloat = 0.0;
var oneFloat = 1.0;
var emptyStr = '';
var oneStr = '1';
var str = 'JavaScript';
var nullValue = null;
var emptyObject = {};
console.log('0 == 0.0 = ' + (zeroInt == zeroFloat));
console.log('1 == "1" =' + (oneInt == oneStr));
console.log('1 === "1" =' + (oneInt === oneStr));
console.log('0 == "" = ' + (zeroInt == emptyStr));
console.log('0 === "" = ' + (zeroInt === emptyStr));
console.log(nullValue == emptyStr)
Out[26]:
In [27]:
var x = 6;
var y = 4;
console.log(y *= 2); // 8
var z = y = 3; // y=3 and z=3
console.log(z); // 3
console.log(x |= 1); // 7
console.log(x += 3); // 10
console.log(x /= 2); // 5
Out[27]:
+
Если второй из операндов не является строкой, то он приводится к ней.
Оператор доступа к члену .
используется для доступа к члену объекта
[]
используются как индексы для доступа к члену обьекта или массива(
)
используются для переобпределения стандартного потока очередности вычислений или вызова функций?:
имеет формуb
true то результат x
иначе результат y
)new
оператор создания нового объектаtypeof
оператор возвращающий тип обьекта
In [32]:
var first = 'First';
var second = 'Second';
console.log(first + second); // FirstSecond
var output = 'The number is : ';
var number = 5;
console.log(output + number);
// The number is : 5
Out[32]:
In [33]:
var a = 6;
var b = 4;
console.log(a > b ? 'a > b' : 'b >= a'); // a > b
var c = b = 3; // b = 3;
console.log(c); // 3
console.log((a + b) / 2); // 4.5
console.log(typeof a); // number
console.log(typeof []); // object
var num = new Number(6);
console.log(num instanceof Number);
console.log(6 instanceof Number);
Out[33]:
In [34]:
var person = {};
person.name = 'George';
person.age = 21;
console.log(typeof person);
console.log(person.name, person.age);
console.log(person['name'], person['age']);
console.log(person);
delete person.age;
console.log(person);
Out[34]:
In [ ]: